package com.bringway.p2p.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.bringway.global.util.StringUtils;
import com.bringway.p2p.dao.JhnhkDao;
import com.bringway.p2p.service.JhnhkService;

import net.sf.json.JSONObject;
/**  
 * @类名 JhnhkServiceImpl  
 * @功能 TODO  计划内还款管理 service接口实现类
 * @作者 js 
 * @日期 2016年8月5日 上午9:42:35  
 *    
 */
@Service
@Transactional
public class JhnhkServiceImpl implements JhnhkService {
	Logger logger=Logger.getLogger(JhnhkServiceImpl.class);
	@Autowired
	private JhnhkDao jhnhkDao;
	@Override
	public List<Map<String, Object>> queryJhnMjqDkList(JSONObject params) {
		return jhnhkDao.queryJhnMjqDkList(params);
	}
	@Override
	public int getJhnJhnMjqDkCount(JSONObject params) {
		return jhnhkDao.getJhnJhnMjqDkCount(params);
	}
	@Override
	public Map<String, Object> getJhnhkJe(JSONObject params) {
		return jhnhkDao.getJhnhkJe(params);
	}
	@Override
	public Map<String, Object> getJbxxInfo(JSONObject params) {
		return jhnhkDao.getJbxxInfo(params);
	}
	@Override
	@Transactional("p2p")
	public Map<String, Object> saveJhnhk(JSONObject params) {
		Map<String, Object> map=new HashMap<>();
		//更新账户
		boolean isUpdateJbxx=jhnhkDao.updateJbxxInfo(params)>0?true:false;
		if (isUpdateJbxx) {
			//添加还款记录,不论成功与否
			params.put("hkzt", "01");
			String hkxxid=jhnhkDao.insertJhnHkxx(params);
			if (StringUtils.isNotEmpty(hkxxid)) {
				params.put("hkxxid", hkxxid);
				//插入账户资金变动详情
				jhnhkDao.insertZcDetails(params);
			}
			
			//更新项目状态,项目应还本息?=已还本息
			/*boolean isfq=jhnhkDao.isYhAndYh(params);
			if (isfq) {
			}*/
			jhnhkDao.updateJhnzq(params);//还款完成,释放相应债权金额
			/*jhnhkDao.updateJhnxm(params);//更新项目
			jhnhkDao.updateJhnxmcg(params);//更新项目草稿
			 */			
			logger.info("saveJhnhk 还款成功!");
		}else {
			//添加还款记录,不论成功与否
			params.put("hkzt", "02");
			jhnhkDao.insertJhnHkxx(params);
			map.put("isAddSuc", false);
			map.put("msg", "还款失败!");
			return map;
		}
		map.put("isAddSuc", true);
		return map;
	}
	@Override
	public List<Map<String, Object>> queryJhnhkmxList(JSONObject params) {
		return jhnhkDao.queryJhnhkmxList(params);
	}
	@Override
	public int getJhnhkmxCount(JSONObject params) {
		return jhnhkDao.getJhnhkmxCount(params);
	}
	@Override
	public List<Map<String, Object>> queryJhnhkzqList(JSONObject params) {
		return jhnhkDao.queryJhnhkzqList(params);
	}
	@Override
	public int getJhnhkzqCount(JSONObject params) {
		return jhnhkDao.getJhnhkzqCount(params);
	}


}
